home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / comm2 / mmuuedcd.lha / REXX / MM_UUEnDecode.rexx
OS/2 REXX Batch file  |  1996-04-26  |  4KB  |  133 lines

  1. /*
  2. ** $VER: MM_UUEnDecode 1.00 (10.04.96)
  3. **
  4. ** Written by Paolo Carotenuto
  5. **
  6. */
  7. OPTIONS RESULTS
  8. DROP MM.
  9. PARSE ARG MM.Area MM.NumMsg MM.Mode
  10. MM.UUDecode='C:UUOut'
  11. MM.UUEncode='C:UUIn'
  12. MM.FSCode='C:FSCode'
  13. MM.DestDir='MM:UUDecode/'
  14. MM.PrgName='MM_UUEnDecode v1.00'
  15. MM.Copyright='(C) 1994-96 by Paolo Carotenuto'
  16. MM.LogLevel=2
  17. IF MM.Area='?'|MM.Area='' THEN;DO
  18. SAY ''
  19. SAY MM.PrgName
  20. SAY ''
  21. SAY 'Usage:'
  22. SAY 'Rx MM_UUEnDecode <Tagname> <MSG #> UUDecode'
  23. SAY ''
  24. SAY 'Rx MM_UUEnDecode <Tagname> <MSG #> UUEncode'
  25. SAY ''
  26. SAY 'Example:'
  27. SAY 'RX MM_UUEnDecode Amiga.ITA 522 UUDecode'
  28. SAY ''
  29. EXIT
  30. END
  31. IF ~SHOW('l',"rexxsupport.library") THEN;DO
  32. IF ~ADDLIB("rexxsupport.library",0,-30,0) THEN;DO
  33. SAY "Could not open rexxsupport.library"
  34. EXIT 10
  35. END
  36. END
  37. ADDRESS 'MAILMANAGER'
  38. IF UPPER(MM.Mode)='UUENCODE' THEN;DO
  39. MM_GetCfgPaths MM.Path
  40. MM.Editor=Trasforma(MM.Path.Editor)
  41. MM.Type.0='UUEncode (UUOut)'
  42. MM.Type.1='FSCode'
  43. MM.Type.Count=2
  44. MM_SingleSelReq MM.Type MM.ModeResp '"'MM.PrgName'"' STR
  45. IF MM.ModeResp.Count=0 THEN EXIT
  46. MM.FileName=MM.DestDir
  47. MM_FileReq 'MM.FileName'
  48. IF MM.ModeResp.0=MM.Type.0 THEN MM.Prg=MM.UUEncode '>NIL: ' MM.FileName ' T:MM_UUEnDecode.Tmp'
  49. ELSE MM.Prg=MM.FSCode '>NIL: ' MM.FileName ' TO T:MM_UUEnDecode.Tmp E'
  50. IF Rc=0 THEN;DO
  51. MM_GetSysop 'MM.Sysop'
  52. ADDRESS COMMAND MM.Prg
  53. ADDRESS COMMAND MM.Editor
  54. MM_ReadMsg MM.Area MM.NumMsg MM.MSG
  55. Messaggio.From=MM.Sysop
  56. Messaggio.To=MM.Msg.From
  57. Messaggio.ToAddr=MM.msg.FromAddr
  58. Messaggio.Subj=MM.Msg.Subj
  59. Messaggio.File='T:MM_UUEnDecode.Tmp'
  60. Messaggio.Tear=MM.PrgName
  61. MM_StringReq 'TO:' 'MM.Msg.From'
  62. IF Rc=0 THEN;DO
  63. IF MM.Msg.From ~=Messaggio.To THEN;DO
  64. Messaggio.To=MM.Msg.From
  65. Messaggio.Subj='Message Generated by MM_UUEnDecode'
  66. MM_GetAreaInfo MM.Area Area
  67. IF Area.Type='MAIL' THEN;DO
  68. MM_StringReq 'Address:' 'MM.Address'
  69. Messaggio.ToAddr=MM.Address
  70. END
  71. END
  72. MM_WriteMsg MM.Area Messaggio
  73. MM_DeleteFile 'T:MM_UUEnDecode.Tmp'
  74. END
  75. END
  76. EXIT
  77. END
  78. MM_ReadMsg MM.Area MM.NumMsg MM.Msg
  79. IF RC ~=0 THEN;DO
  80. CALL Requester(MM.PrgName,'Sorry, Not Fount Message #'MM.NumMsg' in area 'MM.Area,_Ok)
  81. EXIT
  82. END
  83. MM_WriteStem 'T:MM_UUEnDecode.Tmp' MM.Msg.Text
  84. MM_SearchInStem MM.Msg.Text MM.Result '!start#?' STR
  85. IF MM.Result.Count>0 THEN;DO
  86. MM.Name=SUBWORD(MM.Result.0,2)
  87. Rc=Requester(MM.PrgName,'Found a FSCode File - Original FileName : 'MM.Name,"_Ok|Cancel")
  88. IF Rc=1 THEN;DO
  89. ADDRESS COMMAND MM.FSCode' >NIL: T:MM_UUEnDecode.Tmp TO T:'||MM.Name
  90. MM_MoveFile 'T:'MM.Name MM.DestDir||MM.Name
  91. Testo='From Area ['UPPER(MM.Area)'] - Message Number ['MM.NumMsg']'
  92. MM_SetFileNote MM.DestDir||MM.Name 'Testo'
  93. CALL Requester(MM.PrgName,'DONE! Check 'MM.DestDir' directory for the file: 'MM.Name,_Ok)
  94. END
  95. MM_DeleteFile 'T:MM_UUEnDecode.Tmp'
  96. EXIT
  97. END
  98. CALL MakeDir('T:UUDecode')
  99. ADDRESS COMMAND MM.UUDecode' >NIL: T:MM_UUEnDecode.Tmp T:UUDecode'
  100. MM.Name=SHOWDIR('T:UUDecode','F',' ')
  101. IF MM.Name ~='' THEN;DO
  102. Rc=Requester(MM.PrgName,'Found a UUEnCode File - Original FileName : 'MM.Name,"_Ok|Cancel")
  103. IF Rc=1 THEN;DO
  104. MM_MoveFile 'T:UUDecode/'MM.Name MM.DestDir||MM.Name
  105. MM_DeleteFile 'T:MM_UUEnDecode.Tmp'
  106. MM_DeleteFile 'T:UUDecode'
  107. Testo='From Area ['UPPER(MM.Area)'] - Message Number ['MM.NumMsg']'
  108. MM_SetFileNote MM.DestDir||MM.Name 'Testo'
  109. CALL Requester(MM.PrgName,'DONE! Check 'MM.DestDir' directory for the file: 'MM.Name,_Ok)
  110. END
  111. ELSE;DO
  112. MM_DeleteFile 'T:MM_UUEnDecode.Tmp'
  113. MM_DeleteFile 'T:UUDecode/'MM.Name
  114. MM_DeleteFile 'T:UUDecode'
  115. END
  116. EXIT
  117. END
  118. MM_DeleteFile 'T:UUDecode'
  119. CALL Requester(MM.PrgName,'Sorry, Messagge #'MM.NumMsg' in Area 'MM.Area' Does not contain UUEncode file !!',_Ok)
  120. EXIT
  121. Replace:PROCEDURE
  122. PARSE ARG String,New,Old
  123. DO WHILE INDEX(String,Old) ~=0;INTERPRET "PARSE VAR String l '"Old"' r";String=l||New||r;END
  124. RETURN String
  125. Trasforma:PROCEDURE EXPOSE MM.
  126. PARSE ARG String
  127. IF INDEX(String,'%')=0 THEN RETURN String
  128. String=Replace(String,'T:MM_UUEnDecode.Tmp','%s')
  129. RETURN String
  130. Requester:PROCEDURE EXPOSE MM.
  131. PARSE ARG Titolo,Testo,GadGets
  132. MM_Requester '"'Titolo'"' 'Testo' 'GadGets'
  133. RETURN rc